# CLASSIC LAYOUT PRESETS
# --------------------------------
# Syntax: ACTION CONTROL 
# [CHRISTIANB] addition: ACTION @MAPPED_ACTION
# mapped actions must be declared prior to their usage
#
# IMPORTANT: only _one_ indirection layer, with '@', is supported.
# do NOT do something like the following:
# ACTION1   BUTTON1
# ACTION2   @ACTION1
# ACTION3   @ACTION2  # <- that's bad, it's 2 indirections from ACTION3 to BUTTON1. it won't work!
# --------------------------------

#
# player outside of vehicles
#
FOOT_WEAPON_FIRE                BUTTON_B
FOOT_WEAPON_CYCLE_NEXT          DPAD_RIGHT
FOOT_WEAPON_CYCLE_PREVIOUS      DPAD_LEFT
FOOT_WEAPON_HOLSTER             DPAD_DOWN
FOOT_PICKUP                     DPAD_UP		#LEFT_TRIGGER
FOOT_MOVEMENT_LEFT_RIGHT        LEFT_STICK_X
FOOT_MOVEMENT_UP_DOWN           LEFT_STICK_Y
FOOT_MOVEMENT_JUMP              BUTTON_X
FOOT_MOVEMENT_DUCK              BUTTON_LEFT_THUMBSTICK
FOOT_MOVEMENT_SPRINT            BUTTON_A
FOOT_ENTER_EXIT_VEHICLE         BUTTON_Y # used for entering and exiting all kinds of vehicles
FOOT_CAMERA_CYCLE_MODE          BUTTON_WHITE
FOOT_CAMERA_FORCE_BEHIND_PLAYER LEFT_TRIGGER
FOOT_WEAPON_TARGET              RIGHT_TRIGGER  # also used to exit all of the sniper camera modes
FOOT_CAMERA_LOOK_BACK           BUTTON_RIGHT_THUMBSTICK
FOOT_CAMERA_LOOK_LEFT_RIGHT     RIGHT_STICK_X
FOOT_CAMERA_LOOK_UP_DOWN        RIGHT_STICK_Y
FOOT_WEAPON_SHIFT_TARGET_RIGHT  LEFT_TRIGGER		#todo: should be RIGHT_STICK_X
FOOT_WEAPON_SHIFT_TARGET_LEFT   UNKNOWN_CONTROL		#todo: should be RIGHT_STICK_X
SNIPE_FIRE                      @FOOT_WEAPON_FIRE	# new
SNIPE_ZOOM_IN                   BUTTON_X
SNIPE_ZOOM_OUT                  BUTTON_A
SNIPE_LOOK_LEFT_RIGHT           LEFT_STICK_X
SNIPE_LOOK_UP_DOWN              LEFT_STICK_Y

#
# car
#
CAR_WEAPON_FIRE                 BUTTON_B                #BUTTON_RIGHT_THUMBSTICK
CAR_MOVEMENT_ACCELERATE         BUTTON_A                #RIGHT_TRIGGER
CAR_MOVEMENT_BRAKE              BUTTON_X                #LEFT_TRIGGER
CAR_MOVEMENT_HANDBRAKE          RIGHT_TRIGGER               #BUTTON_B
CAR_MOVEMENT_LEFT_RIGHT         LEFT_STICK_X
CAR_MOVEMENT_UP_DOWN            LEFT_STICK_Y
CAR_MOVEMENT_DIGITAL_LEFT       UNKNOWN_CONTROL             #DPAD_LEFT
CAR_MOVEMENT_DIGITAL_RIGHT      UNKNOWN_CONTROL             #DPAD_RIGHT
CAR_RADIO_CHANGE                BUTTON_BLACK
CAR_RADIO_NEXT_SOUNDTRACK       DPAD_UP
CAR_RADIO_PREVIOUS_SOUNDTRACK   DPAD_DOWN
CAR_RADIO_NEXT_SONG             DPAD_RIGHT
CAR_RADIO_PREVIOUS_SONG         DPAD_LEFT
CAR_HORN                        BUTTON_LEFT_THUMBSTICK
CAR_SUBMISSION                  BUTTON_RIGHT_THUMBSTICK
CAR_CAMERA_LOOK_LEFT_RIGHT      DPAD_X                  #RIGHT_STICK_X
CAR_CAMERA_LOOK_UP_DOWN         DPAD_Y                  #RIGHT_STICK_Y
#we always use the foot controls CAR_CAMERA_CYCLE_MODE           @FOOT_CAMERA_CYCLE_MODE #new
CAR_SUSPENSION_ACTIVATE         @CAR_SUBMISSION
CAR_SUSPENSION_LEFT_RIGHT       RIGHT_STICK_X   # Replaced automatically to use the stick or dpad not used for steering or looking around
CAR_SUSPENSION_UP_DOWN          RIGHT_STICK_Y   # Replaced automatically to use the stick or dpad not used for steering or looking around
CAR_BOMB                        @CAR_WEAPON_FIRE
#CAR_WEAPON_LEFT_RIGHT          RIGHT_STICK_X
#CAR_WEAPON_UP_DOWN             RIGHT_STICK_Y
CAR_SPECIAL_FIRE                LEFT_TRIGGER			#BUTTON_RIGHT_THUMBSTICK
CAR_SPECIAL_FIRETRUCK_FIRE      @CAR_SPECIAL_FIRE
CAR_SPECIAL_FIRETRUCK_WATER_LEFT_RIGHT  RIGHT_STICK_X
CAR_SPECIAL_FIRETRUCK_WATER_UP_DOWN     RIGHT_STICK_Y
CAR_SPECIAL_TANK_FIRE           @CAR_SPECIAL_FIRE
CAR_SPECIAL_TANK_TURRET_LEFT_RIGHT      @CAR_SPECIAL_FIRETRUCK_WATER_LEFT_RIGHT

#
# bike
#
BIKE_WEAPON_FIRE                @CAR_WEAPON_FIRE
BIKE_MOVEMENT_ACCELERATE        @CAR_MOVEMENT_ACCELERATE
BIKE_MOVEMENT_BRAKE             @CAR_MOVEMENT_BRAKE
BIKE_MOVEMENT_HANDBRAKE         @CAR_MOVEMENT_HANDBRAKE
BIKE_MOVEMENT_LEFT_RIGHT        @CAR_MOVEMENT_LEFT_RIGHT
BIKE_MOVEMENT_UP_DOWN           @CAR_MOVEMENT_UP_DOWN
BIKE_HORN                       @CAR_HORN
BIKE_BOMB                       @CAR_WEAPON_FIRE
BIKE_CAMERA_LOOK_LEFT_RIGHT     @CAR_CAMERA_LOOK_LEFT_RIGHT
BIKE_CAMERA_LOOK_UP_DOWN        @CAR_CAMERA_LOOK_UP_DOWN
BIKE_CAMERA_WHEELIE_FORCE_1ST_PERSON @FOOT_CAMERA_CYCLE_MODE #for chris sake

#
# boat
#
BOAT_WEAPON_FIRE                @CAR_WEAPON_FIRE
BOAT_MOVEMENT_ACCELERATE        @CAR_MOVEMENT_ACCELERATE
BOAT_MOVEMENT_BRAKE             @CAR_MOVEMENT_BRAKE
BOAT_MOVEMENT_HANDBRAKE         @CAR_MOVEMENT_HANDBRAKE
BOAT_MOVEMENT_LEFT_RIGHT        @CAR_MOVEMENT_LEFT_RIGHT
BOAT_MOVEMENT_UP_DOWN           @CAR_MOVEMENT_UP_DOWN
BOAT_MOVEMENT_DIGITAL_LEFT      DPAD_LEFT
BOAT_MOVEMENT_DIGITAL_RIGHT     DPAD_RIGHT
BOAT_CAMERA_LOOK_LEFT_RIGHT     @CAR_CAMERA_LOOK_LEFT_RIGHT
BOAT_CAMERA_LOOK_UP_DOWN        @CAR_CAMERA_LOOK_UP_DOWN
BOAT_SPECIAL_POLICE_FIRE        @CAR_WEAPON_FIRE

#
# heli
#
HELI_WEAPON_FIRE                BUTTON_B		#BUTTON_B # used for machine gun (at least in hunter)
HELI_MOVEMENT_ACCELERATE        BUTTON_A
HELI_MOVEMENT_BRAKE             BUTTON_X
HELI_MOVEMENT_PITCH             LEFT_STICK_Y
HELI_MOVEMENT_ROLL              LEFT_STICK_X
HELI_MOVEMENT_YAW               TRIGGER_X
HELI_MOVEMENT_STABILIZE         UNKNOWN_CONTROL		#@CAR_HORN
HELI_SPECIAL_HUNTER_FIRE        BUTTON_LEFT_THUMBSTICK	# used for firing rockets when MODELID_CAR_COPTER_HUNTER
HELI_SUBMISSION                 BUTTON_RIGHT_THUMBSTICK
HELI_RADIO_CHANGE               BUTTON_BLACK		#DPAD_UP
HELI_CAMERA_LOOK_UP_DOWN        RIGHT_STICK_Y
#
# planes / rc-planes
#
# [CHRISTIANB] the skimmer can do drive-by's, since it's technically a boat
PLANE_WEAPON_FIRE               @HELI_WEAPON_FIRE
PLANE_MOVEMENT_ACCELERATE       @HELI_MOVEMENT_ACCELERATE
PLANE_MOVEMENT_BRAKE            @HELI_MOVEMENT_BRAKE
PLANE_MOVEMENT_HANDBRAKE        @HELI_SPECIAL_HUNTER_FIRE
PLANE_MOVEMENT_PITCH            @HELI_MOVEMENT_PITCH
# [CHRISTIANB] the only plane in VC is the skimmer, which is technically a boat,
# and also gets controlled like a boat. that's why ROLL is on YAW
# note that the rcplanes ARE planes (rc ones, but with correct pitch/yaw/roll
# behavior)
PLANE_MOVEMENT_ROLL             UNKNOWN_CONTROL
PLANE_MOVEMENT_YAW              @HELI_MOVEMENT_ROLL
PLANE_MOVEMENT_UP_DOWN          LEFT_STICK_Y #not used
PLANE_CAMERA_LOOK_LEFT_RIGHT    RIGHT_STICK_X
PLANE_CAMERA_LOOK_UP_DOWN       @HELI_CAMERA_LOOK_UP_DOWN
RCPLANE_WEAPON_FIRE             @HELI_WEAPON_FIRE
RCPLANE_MOVEMENT_ACCELERATE     @HELI_MOVEMENT_ACCELERATE
RCPLANE_MOVEMENT_BRAKE          @HELI_MOVEMENT_BRAKE
RCPLANE_MOVEMENT_PITCH          @HELI_MOVEMENT_PITCH
RCPLANE_MOVEMENT_ROLL           @HELI_MOVEMENT_YAW
RCPLANE_MOVEMENT_YAW            @HELI_MOVEMENT_ROLL
RCPLANE_CAMERA_LOOK_UP_DOWN     @HELI_CAMERA_LOOK_UP_DOWN


#
# rc-cars
#
RCCAR_WEAPON_FIRE               @CAR_WEAPON_FIRE
RCCAR_MOVEMENT_ACCELERATE       @CAR_MOVEMENT_ACCELERATE
RCCAR_MOVEMENT_BRAKE            @CAR_MOVEMENT_BRAKE

#
# rc-heli
#
RCHELI_WEAPON_FIRE              @HELI_WEAPON_FIRE
RCHELI_MOVEMENT_ACCELERATE      @HELI_MOVEMENT_ACCELERATE
RCHELI_MOVEMENT_BRAKE           @HELI_MOVEMENT_BRAKE
RCHELI_MOVEMENT_PITCH           @HELI_MOVEMENT_PITCH
RCHELI_MOVEMENT_ROLL            @HELI_MOVEMENT_ROLL
RCHELI_MOVEMENT_YAW             @HELI_MOVEMENT_YAW
RCHELI_MOVEMENT_STABILIZE       @CAR_HORN
RCHELI_CAMERA_LOOK_UP_DOWN     @HELI_CAMERA_LOOK_UP_DOWN

#
# menu
#
#MENU_ENTER                      BUTTON_START #still hardcoded
#MENU_EXIT                       @MENU_ENTER
MENU_LEFT_RIGHT                 LEFT_STICK_X
MENU_LEFT                       DPAD_LEFT
MENU_RIGHT                      DPAD_RIGHT
MENU_UP_DOWN                    LEFT_STICK_Y
MENU_UP                         DPAD_UP
MENU_DOWN                       DPAD_DOWN
MENU_SELECT                     BUTTON_A
MENU_BACK                       BUTTON_B

#
# video playback and stuff
#
VIDEO_CANCEL                    @MENU_SELECT
CUTSCENE_CANCEL                 @MENU_SELECT
SCRIPT_CLEAR_MESSAGES           @MENU_SELECT
CREDITS_CANCEL                  UNKNOWN_CONTROL


# [CHRISTIANB] common actions for scriptcontrol mappings (need to be declared
# prior to their usage
MISSION_CANCEL                  @CAR_SUBMISSION

#
# script control mappings
#
WEAPON_AMMO_BUY                 BUTTON_A
WEAPON_AMMO_LEFT                DPAD_LEFT
WEAPON_AMMO_RIGHT               DPAD_RIGHT
WEAPON_AMMO_EXIT                @FOOT_ENTER_EXIT_VEHICLE

ACTIVATE_MISSION                @CAR_SUBMISSION

ANSWER_PHONE                    LEFT_TRIGGER		#@FOOT_CAMERA_FORCE_BEHIND_PLAYER

# [CHRISTIANB] always leave it to FOOT_WEAPON_TARGET, otherwise the player
# will have to press WEAPON_TARGET _and_ pictureA _and_ pictureB
TAKE_PICTURE_A                  @FOOT_WEAPON_TARGET
TAKE_PICTURE_B                  @FOOT_WEAPON_FIRE

# [CHRISTIANB] pizza_left and _right are needed for ScriptControls.txt,
# to distinguish the directions. in the game, PIZZA_LEFT_RIGHT must always
# be used, since that's mapped to CAR_CAMERA_LOOK_LEFT_RIGHT
PIZZA_LEFT                      UNKNOWN_CONTROL
PIZZA_RIGHT                     UNKNOWN_CONTROL
PIZZA_LEFT_RIGHT                @CAR_CAMERA_LOOK_LEFT_RIGHT
PIZZA_FIRE                      @CAR_WEAPON_FIRE #because the pizza works like the drive-by
PIZZA_CANCEL                    @CAR_SUBMISSION

# 6 races can be selected or so in RACES.SC
RACE_LEFT                       DPAD_LEFT
RACE_RIGHT                      DPAD_RIGHT
RACE_OK                         BUTTON_A
RACE_CANCEL                     BUTTON_B

# Skip round in shooting range
SKIP_SHOOTING_ROUND             BUTTON_X
